package com.cskaoyan.javase.oop1._11static._2compare;

import javafx.geometry.VPos;

/**
 * 我们从以下四个角度比较（拿成员变量为例）
 * 成员的所属
 *      成员变量: 对象
 *      静态成员变量: 类
 *
 * 在内存中的位置
 *      成员变量: 堆上的对象中
 *      静态成员变量: Java8之后在堆上的一片被全体对象共享的区域
 *
 * 在内存中出现的时间
 *      成员变量: 必须要创建对象之后才会存在
 *      静态成员变量: 只需要类加载完毕后就存在了
 *      创建对象,一定类加载
 *      但是类加载,不一定创建对象
 *
 * 调用方式
 *      成员变量: 对象名点
 *      静态成员变量: 类名点
 *
 * 创建对象,一定类加载
 * 但是类加载,不一定创建对象
 * 思考:
 *      1.在静态的成员方法中,为什么没有this传参,为什么不能访问非static成员?
 *          类加载后不一定就有对象,没有对象就不能访问.
 *          如果真要访问非static成员,就必须手动创建对象
 *      2.在成员方法中,能不能直接访问静态成员?(静态成员变量和方法)
 *          成员方法需要创建对象调用,对象都有了,必然类加载了
 *          所以可以直接访问
 * 
 * @since 11:22
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    static int a;
    int b;
    public void test(){
        System.out.println(a);
        System.out.println(b);
    }

    public static void testStatic(){
        System.out.println(a);
        // System.out.println(b);
    }
}
